class Solution {
    public int smallestNumber(int n) {
        // 二进制前导零的个数
        int m = 32 - Integer.numberOfLeadingZeros(n);
        return (1 << m) - 1;
    }
}